package com.heima.article.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.heima.model.article.dtos.ArticleHomeDto;
import com.heima.model.article.dtos.ArticleInfoDto;
import com.heima.model.article.dtos.ArticleSimpleInfoDto;
import com.heima.model.article.pojos.ApArticle;
import com.heima.model.common.dtos.ResponseResult;
import com.heima.model.media.dtos.WmNewsStatisticsDto;
import com.heima.model.mess.app.ArticleVisitStreamMess;

import java.util.List;
import java.util.Map;

public interface ApArticleService extends IService<ApArticle> {
    /**
     * 根据参数加载文章列表
     * @param loadtype 1为加载更多  2为加载最新
     * @param dto
     * @return
     */
    ResponseResult load(Short loadtype, ArticleHomeDto dto);

    /**
     * 根据参数加载文章列表  v2
     * @param dto
     * @param firstPage
     * @return
     */
    public ResponseResult load2(Short loadtype, ArticleHomeDto dto,boolean firstPage);

    /**
     * 加载文章详情
     * @param dto
     * @return
     */
    ResponseResult loadArticleInfo(ArticleInfoDto dto);
    /**
     * 加载文章详情的行为内容
     * @param dto
     * @return
     */
    ResponseResult loadArticleBehavior( ArticleInfoDto dto);

    /**
     * 根据文章ID查询文章 和 内容信息
     * @return
     */
    Map findArticle(Long id);
    /**
     * 重新计算文章分值
     * @param mess
     */
    void updateApArticle(ArticleVisitStreamMess mess);

    List<ArticleSimpleInfoDto> findArticleIdsByAuthorId(Long authorId);

    /**
     * 查询文章数量
     *
     * @return
     */
    Integer findArticleCount(WmNewsStatisticsDto dto);
}